Subscriptions allow users to specify a feed and filters to record or download desired multimedia content, but the content itself cannot be traced back to a normal subscription. For example, a TiVo® customer can create a Season Pass™ subscription to record all episodes of their favorite television program as they air. A web browser can be configured to download web page updates using RSS (rich site summary). A user of the VUZE® client (developed by Vuze, Inc. of Palo Alto, Calif.) may create a subscription to download content such as all television programs within a genre, that are shown on a particular channel, or that are found as a result of a search query.
BitTorrent is currently one of the most popular methods of distributing large files over the Internet. For a given file, the BitTorrent protocol embodies four main roles: an initial seeder, new seeders, a tracker, and peers. Initial seeders, new seeders, and peers are all transient clients; trackers are typically web servers. The initial seeder is the source of the file, and operates by dividing a file into small pieces, creating a metadata description of the file and sending this description to the tracker. Peers discover this file metadata description, usually as a .torrent file, through some out-of-band mechanism (e.g., a web page) and then begin looking for pieces of the file. Peers contact a central tracker to bootstrap their knowledge of other peers and seeds, and the tracker returns a randomized subset of other peers and seeds. Initially, only the initial seeder has pieces of a file, but soon peers are able to exchange missing pieces with each other. Once a peer acquires all of the pieces of a file, it becomes a new seeder. This collection of clients actively sharing a file is called a swarm.
In some client-based peer-to-peer (P2P) systems (e.g., VUZE®), file descriptors and other metadata are stored in a distributed hash table (DHT), in which all clients participate, and any node can be assigned the role of tracker if its unique identification number is equal or close to the hash of a given file's descriptor. This is mainly used as a backup mechanism when the original tracker is offline or otherwise not responding to requests for the file. However, the DHT is also a way to distribute a file without a central tracker at all or to locate additional peers that are not connected to a tracker.